NC15 求二叉树的层序遍历
https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3
import (
"container/list"
)
// type TreeNode struct {
// Val int
// Left *TreeNode
// Right *TreeNode
// }
/**
*
* @param root TreeNode类
* @return int整型二维数组
*/
func levelOrder(root *TreeNode) [][]int {
if root == nil {
return nil
}
var result [][]int
queue := list.New()
queue.PushBack(root)
for queue.Len() != 0 {
size := queue.Len()
var temp []int
for i := 0; i < size; i++ {
ele := queue.Front().Value.(*TreeNode)
queue.Remove(queue.Front())
temp = append(temp, ele.Val)
if ele.Left != nil {
queue.PushBack(ele.Left)
}
if ele.Right != nil {
queue.PushBack(ele.Right)
}
}
result = append(result, temp)
}
return result
}